package com.collaboration.proton.controllers;

import com.collaboration.proton.entities.Hero;
import com.collaboration.proton.services.HeroService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * @author thousandcat
 * @param
 * @return 无
 *
 */
@Controller
@RequestMapping("heroes") //指定该控制层的整体路径
public class HeroController {
    @Autowired
    HeroService heroService;

    //响应访问新建项目页面的GET请求
    @GetMapping("/new")
    //Spring框架的Model对象用于在控制层和视图层之间交换数据
    public String displayHeroForm(Model model){

        //Model对象的addAttribute方法可以将数据传到视图层中，其第一个参数为在HTML模板中对象的名称，第二个参数为在控制层中要传的数据
        Hero iHero = new Hero();
        model.addAttribute("H",iHero);
        return "new-hero";
    }

    @PostMapping("/save")
    public String createHero(Model model, Hero hero){
        //处理保存到数据库的行为
        heroService.save(hero);
        //使用重定位防止重复提交
        return "redirect:/heroes/new";
    }
}
